/**
 * Created by Anh Nguyen on 4/16/14.
 */
(function(app, j) {

    app.authIteraction = new function() {

        //Add method to validate password
        j.validator.addMethod("validatePassword", function(value, ele) {

            var re = /^[A-Za-z0-9_]+$/;
            return re.test(value);
        }, "");

        //Add method to validate phone number
        j.validator.addMethod("validatePhoneNumber", function(value, ele) {

            var re = /^0\d{9,10}$/;
            return re.test(value);
        }, "");

        this.registerHanler = function() {

            var formReg = j("#formregister");

            formReg.submit(onFormRegisterSubmit);

            //Init validate form register
            app.initFormValidate(
                formReg,
                {
                    username : {
                        required: true,
                        minlength: 6,
                        maxlength: 20
                    },
                    pass: {
                        validatePassword: true,
                        required: true
                    },
                    repass: {
                        equalTo: "#pass"
                    },
                    email: {
                        required: true,
                        email: true
                    },
                    fullname: {
                        required: true,
                        minlength: 5,
                        maxlength: 50
                    },
                    mobilephone: {
                        required: true,
                        validatePhoneNumber: true
                    },
                    gender: {
                        required: true,
                        digits: true
                    },
                    birthyear: {
                        required: true,
                        digits: true
                    },
                    city: {
                        required: true
                    },
                    shopname: {
                        required: true,
                        maxlength: 30
                    },
                    addressshop: {
                        required: true,
                        minlength: 6,
                        maxlength: 100
                    },
                    addressfacebook: {
                        required: true,
                        minlength: 6,
                        maxlength: 100,
                        url: true
                    }
                },
                {
                    username: "Tên đăng nhập không được bỏ trống (ít nhất nhất 6 ký tự)",
                    pass: "Mật khẩu không chính xác",
                    repass: "Xác nhận mật khẩu không khớp",
                    email: "Email không chính xác",
                    fullname: "Họ tên không chính xác (ít nhất 5 & nhiều nhất 50 ký tự)",
                    mobilephone: "Số điện thoại không chính xác",
                    gender: "Giới tính không chính xác",
                    birthyear: "Năm sinh không chính xác",
                    city: "Thành phố không chính xác",
                    shopname: "Tên cửa hàng không chính xác",
                    addressshop: "Địa chỉ cửa hàng không chính xác",
                    addressfacebook: "Địa chỉ facebook không chính xác"
                }
            );
        };

        var onFormRegisterSubmit = function( ) {

            var $this = j(this);
            if($this.valid()) {

                var data = $this.serialize();
                var url = "control/processregister.php";

                var errWrapper = j('.errWrapper');
                errWrapper.html("");

                app.makeAjaxReq(url, data, "", "POST", "json", false, onRegisterResponse, false, false);
            }

            return false;
        };

        var onRegisterResponse = function(data) {

            var errWrapper = j('.errWrapper');
            var formReg = j("#formregister");

            errWrapper.html("");

            if(data.stt == 1) {

                formReg[0].reset();
                alert("Register success!");

                //TODO: Register success
            } else {

                var err = data.err;

                j.each(err, function(index, value) {

                    errWrapper.append("<li> - "+value+"</li>");
                });
            }
        };

    };

})($$.app, $);
